﻿; (function (global) {

    'use strict';

    global.Levels = global.Levels || {};

    Levels.Hard = function Hard() {
    }

    Levels.Hard.getAllowedStrategies = function () {
        return Strategies.getAll();
    }

    Levels.Hard.checkRequiredStrategies = function (strategies) {
        var nakedPairOk = false;
        var burmaOk = false;
        var simpleColoringOk = false;
        for (var i = 0; i < strategies.length; i++) {
            var strategy = strategies[i];
            if (strategy instanceof Strategies.NakedPair) {
                nakedPairOk = true;
            }
            else if (strategy instanceof Strategies.Burma) {
                burmaOk = true;
            }
            else if (strategy instanceof Strategies.SimpleColoring) {
                simpleColoringOk = true;
            }
        }

        return nakedPairOk && (burmaOk || simpleColoringOk);
    }

    Levels.Hard.hasEnoughEmpty = function (emptyCount) {
        return false;
    }
}(this));
